home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
The X-Philes (2nd Revision)
/
The X-Philes Number 1 (1995).iso
/
xphiles
/
hp48_2
/
ml.fin
< prev
next >
Wrap
Text File
|
1991-04-12
|
3KB
|
83 lines
Article 1011 of comp.sys.handhelds:
Path: en.ecn.purdue.edu!noose.ecn.purdue.edu!samsung!uunet!microsoft!alonzo
From: alonzo@microsoft.UUCP (Alonzo GARIEPY)
Newsgroups: comp.sys.handhelds
Subject: uuencoded FIND and syseval CFIND for 48
Message-ID: <56658@microsoft.UUCP>
Date: 17 Aug 90 00:48:49 GMT
Reply-To: alonzo@microsoft.UUCP (Alonzo GARIEPY)
Organization: Microsoft Corp., Redmond WA
Lines: 69
Here is a uuencoded version of my FIND program. Using machine language,
it searches the memory of the calculator very quickly for a sequence of
nibbles that you supply. If you wanted to look for 33D4E35 (low to high
memory) starting at address #20000, the arguments to FIND would be:
2: #53E4D336
1: #20000
That is, the nibbles you specify must be in reverse order (high to low
memory) followed by the number of nibbles less one. Here we are looking
for 7 nibbles (33D4E35) so we put 6 at the end of the binary integer.
The first address FIND checks will actually be #20001.
When find returns, it will display the address where the pattern was
found or it will have searched all memory and returned to #20000.
When there are several instances of the pattern in memory, you can just
keep executing FIND and it will display the successive addresses.
You can easily automate this process in another program.
begin 600 find
M2%!(4#0X+4&=+>!A(\FB<K8:_L4QDP(!`````````L7%T;L?3BI0`0``````
M``````GHT;L?Q<7!W`*1`!`C(:#/(1%'01=#81IEIU^!$&443$$3`V$9)#$0
M)8?0GP$E8;!/2U;Q"/S0!)X!V_L4!O4>-#$2ED$@$!+Z'`(Q$B1AA("<8R,K
",0#0
`
end
FIND was particularly useful for determining the location on the 48
of routines I had discovered on the 28. Most of this code was not
rewritten so I just searched for a sequence of machine code instructions.
Since many addresses have changed on the 48, I had to be careful not to
use sequences that contained an address. I have also used this technique
to map Eric Toonen's Syseval map onto the 48. Sometimes I had to disassemble
the code first so I could see embedded addresses.
Rick Grevelle has done a great deal of work in exploring the HP 28 and
as part of his researches into the 48, he has created the following program
for generating the FIND program. This will prove useful to those of you
without serial communications to your 48 or access to the uudecode program.
I'll see if I can get Rick to put together a list of 48 Syseval addresses.
From: Rick Grevelle <uunet!tamuts.tamu.edu!n242df>
Subject: HP 48 version of CFIND
CFIND [C44B]
\<<
\<< RCWS 20 STWS SWAP #0h
OR SWAP STWS A 1 +
\>> 10
#1471121CFA021231h
#15FA7651A6143174h
#10313414C1465108h
#FD08725103124196h
#1564B4FB06125019h
#BDB019E04D0FC08Fh
#61231341EF50614Fh
#1021CFA121020419h
#C80846124123h
48 STWS #0h OR 64 STWS
1 8 START
#5193h SYSEVAL
NEXT #2DCCh
#5A03h SYSEVAL
#5ACCh SYSEVAL
#1D524h SYSEVAL
#54AFh SYSEVAL
#5445h SYSEVAL
\>>